package com.firstgroup.service;

import com.firstgroup.Utils.ResponseResult;
import com.firstgroup.domain.Comment;
import com.firstgroup.domain.Interviewers;
import com.firstgroup.domain.User;

import java.util.List;

/**
 * 创作人 王箫凯
 * Date 2021/8/9
 * Time 9:38
 *
 * @author 王箫凯
 */
public interface UserService {
    /**
     * 查找一个用户
     *
     * @param username 账号
     * @return 返回一个user 对象
     */
    User findUser(String username);

    /**
     * 进行登录操作
     *
     * @param username 账号
     * @param password 密码
     * @return 返回一个结果集
     */
    ResponseResult login(String username, String password);

    /**
     * 更改用户的状态信息
     *
     * @param interviewId ID
     * @param state     更改后的状态
     * @return 返回一个结果集
     */
    ResponseResult updateState(Integer interviewId, String state);


    /**
     * 根据学号查询相应的ID
     *
     * @param interviewId ID
     * @return 返回一个面试人员的所有信息
     */
    Interviewers findInterviewersByInterviewId(Integer interviewId);

    ResponseResult setPlaceAndTime(String place,String time,Integer[] interviewsIds);

    User findById(int id);

    ResponseResult findByName(String name);

    Integer updateUser(int id,String name,String username);

    List<Object> findIdAndName();

    /**
     * 进行模糊查询
     * @param choose 选择,0 表示根据名字进行模糊查询,1表示根据班级模糊查询
     * @param like 表示查询的内容
     * @return 返回一个结果集
     */
    ResponseResult FuzzyQuery(Integer choose,String like);

    /**
     * 批量修改面试人员的状态
     * @param ids 面试人员ID集合
     * @param state 状态
     * @return 返回一个结果集
     */
    ResponseResult batchChange(Integer[] ids,String state);

    /**
     * 查询被封禁的用户
     * @return
     */
    ResponseResult findBanUsers();

    /**
     * 添加封禁用户
     //* @param comment 信息
     * @return 返回结果集
     */
    ResponseResult addBanUser(int userId,int interviewId,String content);

    /**
     * 根据面试ID进行查找 是否被封禁
     * @param interviewId
     * @return
     */
    ResponseResult findBanUserByInterviewId(Integer interviewId);



}
